Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
Error: error en la conversión a número para el valor "undefined58" (tipo de cadena) en la ruta "TimePeriod"

Intentando agregar impuestos a un usuario usando 3 parámetros de Usuario, original y porcentaje. Los esquemas se definen a continuación, así como la llamada de la función.

 const usertaxschema = require('./schemas/usertaxschema') const maintaxschema = require('./schemas/maintaxschema') const taxedamount = ((percent/100)*original).toFixed(0) const data = await usertaxschema.findOne({User:User}) if(!data) { const newSchema = new usertaxschema({ User:User, TaxesPaidInTotal:0, TakesPaidThisPeriod:0, }) await newSchema.save().catch((err) => console.log(err)) return 0 } const chubster = await maintaxschema.findOne({Taxes:'Main'}) chubster.TotalTaxesPaid +=taxedamount chubster.taxesavailable += taxedamount data.TotalTaxesPaid +=taxedamount data.TimePeriod += taxedamount await chubster.save() await data.save() return taxedamount }

UserTaxSchema

 const mongoose = require('mongoose') const usertaxschema = mongoose.Schema({ User:String, TaxesPaidInTotal:Number, TimePeriod:Number, }) module.exports = mongoose.model('usertaxes', usertaxschema, 'usertaxes')

Esquema fiscal principal

 const mongoose = require('mongoose') const maintaxschema = mongoose.Schema({ Taxes:String, //Main etc TotalTaxesAllTime:Number, TaxesCollectedThisPeriod:Number, TaxesInBalance:Number, }) module.exports = mongoose.model('maintaxes', maintaxschema, 'maintaxes')

Ejemplo de función de llamada

 const fatso = await Client.economy.taxUser(interaction.user.id, 500, 11.5) console.log(fatso)
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Number.toFixed devuelve una String . De ahí viene "58" . Luego, "agrega" (concatena) la String "58" a varias propiedades que deberían almacenar números, pero parece que la propiedad TimePeriod no está undefined , por lo que concatena undefined y "58" y obtiene el valor "undefined58" .

Tienes que arreglar dos cosas:

  1. asegúrese de agregar números a números, en lugar de agregar cadenas a números
  2. compruebe si las propiedades no están undefined antes de agregarlas

Para resolver #1, esta línea

 const taxedamount = ((percent/100)*original).toFixed(0)

debe usar Math.round en lugar de .toFixed , porque Math.round devuelve un número, mientras que .toFixed devuelve una cadena.

 const taxedamount = Math.round(percent / 100 * original)

Para resolver el n. ° 2, debe verificar si no está undefined (tal vez incluso si es null , si ese también es un valor posible) antes de agregar valores. Pero, ¿está seguro de que debería agregar una "cantidad sujeta a impuestos" a un "período de tiempo"?

Bueno, de todos modos, si eso es lo que quiere hacer, y si desea agregar la cantidad, incluso si el valor actual de la propiedad no está undefined (o es null ), puede establecer el valor predeterminado en 0 antes de agregar

 data.TimePeriod = (data.TimePeriod || 0) + taxedamount

Debe hacer eso para todas las propiedades que pueden contener undefined (o null ) para no obtener un valor NaN (no un número).

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda